package com.example.bigevent.validation;

import jakarta.validation.groups.Default;

/**
 * 校验分组，以便校验按组来进行
 */
//@Valid注解只会验证没有分组的（默认分组）  等同于@Validated没括号
//@Validated(ValidationGroup.Update.class)只会验证ValidationGroup.update.class这个分组的
//@Valid和@Validated不能同时生效
public interface ValidationGroup {
    //用户校验分组
    interface Basic{}
    interface RegisterAndLogin extends Basic{}
    //继承分组后 @Validated(ValidationGroup.Update.class)不仅会校验Update，还会校验Basic分组
    interface Update extends Basic{}

    //文章分类校验分组
    interface UpdateCategory extends Default{}//继承默认分组。指定该分组时，默认分组也会校验。建议不要用默认分组，如果别人在注解加了分组，那这个就不属于默认分组，那就校验不到了

    //文章校验分组
    interface AddArticle extends Default{}
    interface UpdateArticle extends AddArticle{}
}
